# Maintainer: AndyRTR <andyrtr@archlinux.org>

pkgbase=ghostscript
pkgname=(ghostscript ghostxps ghostpcl)
pkgver=9.25
pkgrel=3
pkgdesc="An interpreter for the PostScript language"
url="https://www.ghostscript.com/"
arch=('x86_64')
license=('AGPL3' 'custom')
depends=('libxt' 'libcups' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec'
         'libtiff' 'lcms2' 'dbus' 'libpaper' 'ijs' 'openjpeg2' 'libidn')
makedepends=('gtk3' 'gnutls' 'glu' 'freeglut')
# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver/./}/ghostpdl-${pkgver}.tar.gz)
sha512sums=('8b5efdbddfaa0395b4ee13b2d109cf610bc85dbba024a8bd9e01af37353649e6405868e2569d098e7c8ab8cb7b76162ab393dd4fad2f52f3bc3ba3047fdbc006')

prepare() {
  cd ghostpdl-${pkgver}

  # force it to use system-libs
  rm -r cups/libs expat ijs jbig2dec jpeg lcms2mt libpng openjpeg tiff zlib
  # using tree freetype because of https://bugs.archlinux.org/task/56849
  # lcms2mt is the new lcms2 fork aimed to replace lcms2 in a thread safe way
}

build() {
  cd ghostpdl-${pkgver}

  ./configure --prefix=/usr \
              --enable-dynamic \
              --with-ijs \
              --with-jbig2dec \
              --with-x \
              --with-drivers=ALL \
              --with-fontpath=/usr/share/fonts/gsfonts \
              --enable-fontconfig \
              --enable-freetype \
              --enable-openjpeg \
              --without-luratech \
              --with-system-libtiff \
              --with-libpaper \
              --disable-compile-inits #--help # needed for linking with system-zlib

  make so-only
}

package_ghostscript() {
  optdepends=('texlive-core:      needed for dvipdf'
              'gtk3:              needed for gsx')

  cd ghostpdl-${pkgver}

  make DESTDIR="${pkgdir}" \
       CUPSSERVERROOT="${pkgdir}$(cups-config --serverroot)" \
       CUPSSERVERBIN="${pkgdir}$(cups-config --serverbin)" \
       soinstall
  ln -s gsc "${pkgdir}"/usr/bin/gs

  # remove useless broken doc/ symlink - FS#59507
  rm -f "${pkgdir}"/usr/share/ghostscript/${pkgver}/doc

  # remove unwanted localized manpages
  rm -r "${pkgdir}"/usr/share/man/de

  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
}

package_ghostxps() {
  pkgdesc="${pkgdesc/PostScript/XPS document}"
  depends=("ghostscript=${pkgver}-${pkgrel}")

  cd ghostpdl-${pkgver}

  install -Dt "${pkgdir}"/usr/bin sobin/gxpsc
  ln -s gxpsc "${pkgdir}"/usr/bin/gxps

  install -Dt "${pkgdir}"/usr/lib sobin/libgxps.so.${pkgver%.*}
  ln -s libgxps.so.${pkgver%.*} "${pkgdir}"/usr/lib/libgxps.so.${pkgver%rc*}

  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
}

package_ghostpcl() {
  pkgdesc="${pkgdesc/PostScript/PCL 6}"
  depends=("ghostscript=${pkgver}-${pkgrel}")

  cd ghostpdl-${pkgver}

  install -Dt "${pkgdir}"/usr/bin sobin/gpcl6c
  ln -sf gpcl6c "${pkgdir}"/usr/bin/gpcl6

  install -Dt "${pkgdir}"/usr/lib sobin/libgpcl6.so.${pkgver%.*}
  ln -s libgpcl6.so.${pkgver%.*} "${pkgdir}"/usr/lib/libgpcl6.so.${pkgver%rc*}

  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
}
